package com.neusoft.neuiotms.dcam.fixed.vo;

import java.util.Date;
import org.hibernate.validator.constraints.Length;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.handler.inter.IExcelDataModel;
import cn.afterturn.easypoi.handler.inter.IExcelModel;
import lombok.Getter;
import lombok.Setter;

@Setter
@Getter
public class AssetExportVO implements IExcelDataModel, IExcelModel {

    @Excel(name = "ID",isColumnHidden = true)
    private Long id;

    @Excel(name = "制表时间", orderNum = "0", format = "yyyy-MM-dd")
    private Date createtime;

    @Excel(name = "资产编号(必填)",orderNum = "1")
    private String code;

    @Excel(name = "资产大类(必填)",orderNum = "2")
    private String assetcategories;

    @Excel(name = "资产小类(必填)",orderNum = "3")
    private String assetTypeName;


    @Excel(name = "资产名称(必填)", orderNum = "4")
    @Length(max = 255, message = "资产名不能超过{max}位")
    private String name;

    /** 账套 */
    @Excel(name = "账套", orderNum = "5")
    private String books;

    /** 投产日期 */
    @Excel(name = "投入使用日期", orderNum = "6",  format = "yyyy年MM月dd日")
    private Date usedate;

    /** 取得日期 */
    @Excel(name = "取得日期(必填)", orderNum = "7", format = "yyyy-MM-dd")
    private Date getdate;

    /** 自用价值 */
    @Excel(name = "自有价值", orderNum = "8")
    private String ownvalue;

    /** 折旧状态 */
    @Excel(name = "折旧状态", orderNum = "9")
    private String depreciationstatus;


    /** 已折旧 */
    @Excel(name = "已折旧（月）", orderNum = "10",type=10,numFormat="#,##0")
    private Double depreciationmonth;

    /** 已折旧 */
    @Excel(name = "累计折旧", orderNum = "11")
    private String depreciationtotal;


    /** 使用期限 */
    @Excel(name = "使用期限（月）", orderNum = "12",type=10,numFormat="#,##0")
    private Double month;

    /** 价值类型 */
    @Excel(name = "价值类型(必填)", orderNum = "13")
    private String valuetype;

    /** 价值 */
    @Excel(name = "价值(必填)", orderNum = "14")
    private String money;

    /** 财政性资金 */
    @Excel(name = "财政性资金", orderNum = "15")
    private String fundsfinancial ;

    /** 非财政性资金 */
    @Excel(name = "非财政性资金", orderNum = "16")
    private String unfundsfinancial ;

    /** 净值 */
    @Excel(name = "净值", orderNum = "17")
    private String equity ;

    @Excel(name = "取得方式", orderNum = "18")
    private String sourceDesc;

    /** 使用方向 */
    @Excel(name = "使用方向", orderNum = "19")
    private String usetype;

    /** 使用状况 */
    @Excel(name = "使用状况(必填)", orderNum = "20")
    private String statusDesc;

    /** 使用部门 */
    @Excel(name = "使用部门", orderNum = "21")
    private String useDeptDesc;

    /** 管理部门 */
    @Excel(name = "管理部门", orderNum = "22")
    private String manageDeptDesc;

    /** 使用人 */
    @Excel(name = "使用人", orderNum = "23")
    private String userName;


    /** 数量 */
    @Excel(name = "数量(必填)", type = 10, orderNum = "24",numFormat="#,##0")
    private Double quantity ;

    /** 制单人 */
    @Excel(name = "制单人", orderNum = "25")
    private String creator;

    /** 所属单位 */
    @Excel(name = "所属单位", orderNum = "26")
    private String belongTo;

    /** 移交单位 */
    @Excel(name = "移交单位(必填)", orderNum = "27")
    private String submmitTo;

    @Excel(name = "原资产卡片单位", orderNum = "28")
    private String secondDept;

    /** 规格型号 */
    @Excel(name = "规格型号", orderNum = "29")
    private String specification;

    /** 存放地点 */
    @Excel(name = "存放地点", orderNum = "30")
    private String located;

    /** 原资产编号 */
    @Excel(name = "原资产编号", orderNum = "31")
    private String originCode;

    /** 品牌 */
    @Excel(name = "品牌", orderNum = "32")
    private String brand;

    /** 闲置价值 */
    @Excel(name = "闲置价值", orderNum = "33")
    private String idleValue ;

    /** 制单时间 */
    @Excel(name = "制单时间", orderNum = "34", format = "yyyy年MM月dd日")
    private Date handoverDate;

    /** 备用字段 */
    @Excel(name = "备用字段", orderNum = "35")
    private String backup;

    /** 备注 */
    @Excel(name = "备注", orderNum = "36")
    private String remark;

    /** 用途 */
    @Excel(name = "用途", orderNum = "37")
    private String purpose;


    /** 生产厂家 */
    @Excel(name = "生产厂家", orderNum = "38")
    private String produce;

    /** 维保截至时间 */
    @Excel(name = "维保截至时间", orderNum = "39", format = "yyyy-MM-dd")
    private Date manufacturerEndDate;


    /** 交接文档是否齐全 */
    @Excel(name = "交接文档是否齐全", orderNum = "40")
    private String isDocumentAll;

    /** 对应支撑的业务应用系统 */
    @Excel(name = "对应支撑的业务应用系统", orderNum = "41")
    private String businessSystem;

    /** 合同编号以及名称 */
    @Excel(name = "合同编号以及名称", orderNum = "42")
    private String contractNameAndCode;

    /** 序列号 */
    @Excel(name = "序列号", orderNum = "43")
    private String sequence;

    /** 是否报废 */
    @Excel(name = "是否报废", orderNum = "44")
    private String isScrapped;

    /** 厅局机房地址 */
    @Excel(name = "厅局机房地址", orderNum = "45")
    private String officeComputerRoomAddress;

    /** 厅局地址 */
    @Excel(name = "厅局地址", orderNum = "46")
    private String officeAddress;

    /** 是否在线 */
    @Excel(name = "是否在线", orderNum = "47")
    private String running;

    private int rowNum;

    private String errorMsg;

    @Override
    public Integer getRowNum() {
        return this.rowNum;
    }

    @Override
    public void setRowNum(final Integer rowNum) {
        this.rowNum = rowNum;
    }

    @Override
    public String getErrorMsg() {
        return this.errorMsg;
    }

    @Override
    public void setErrorMsg(final String errorMsg) {
        this.errorMsg = errorMsg;
    }

}
